package label_center

import (
	"time"
)

// 模板记录

// 模板 创建 请求
type ReqBaseSubscribeTmplCreate struct {
	AppId             string     `json:"AppId"`             //应用ID
	SubscribeTmplName string     `json:"SubscribeTmplName"` //模板名称
	VideoParam        VideoParam `json:"VideoParam"`        //视频参数
	AudioParam        AudioParam `json:"AudioParam"`        //音频参数
}

// 模板 删除 请求
type ReqBaseSubscribeTmplDelete struct {
	IdSubscribeTmpl int64 `json:"IdSubscribeTmpl"` //模板Id
}

// 模板 修改 请求
type ReqBaseSubscribeTmplUpdate struct {
	IdSubscribeTmpl   int64      `json:"IdSubscribeTmpl"`   //模板Id
	AppId             string     `json:"AppId"`             //应用ID
	SubscribeTmplName string     `json:"SubscribeTmplName"` //模板名称
	VideoParam        VideoParam `json:"VideoParam"`        //视频参数
	AudioParam        AudioParam `json:"AudioParam"`        //音频参数
}

// 模板 查询 请求
type ReqBaseSubscribeTmplSearch struct {
	AppId string `json:"AppId"` //应用Id 默认=rtp

	KeyWord         string `json:"KeyWord,omitempty"`         //全局关键词
	IdSubscribeTmpl int64  `json:"IdSubscribeTmpl,omitempty"` //模板Id

	SubscribeTmplName string `json:"SubscribeTmplName,omitempty"` //用户自定义

	Page        int64    `json:"Page"`                  //必填 指定返回页码号
	Limit       int64    `json:"Limit"`                 //必填 指定返回每页条数
	FieldOrders []string `json:"FieldOrders,omitempty"` //指定要排序的字段数组，默认升序，降序加前缀-，如 ["-Id", "Name"] 按Id降序Name升序排列
}

type ReqBaseSubscribeTmplId struct {
	IdSubscribeTmpl int64 `json:"IdSubscribeTmpl"` //模板Id
}

type RespBaseSubscribeTmpl struct {
	IdSubscribeTmpl   int64      `json:"IdSubscribeTmpl"`   //模板Id
	AppId             string     `json:"AppId"`             //应用ID
	SubscribeTmplName string     `json:"SubscribeTmplName"` //模板名称
	VideoParam        VideoParam `json:"VideoParam"`        //视频参数
	AudioParam        AudioParam `json:"AudioParam"`        //音频参数
	TimeCreate        time.Time  `json:"TimeCreate"`        //创建时间
	TimeUpdate        time.Time  `json:"TimeUpdate"`        //更新时间
}

// 响应 查询列表
type RespBaseSubscribeTmpls struct {
	Total              int64                   `json:"Total"`              //返回列表的总条数
	BaseSubscribeTmpls []RespBaseSubscribeTmpl `json:"BaseSubscribeTmpls"` //返回列表对象
}

// 模板 推流 请求

type ReqBaseSubscribeTmplHistory struct {
	IdSubscribeTmpl int64 `json:"IdSubscribeTmpl"` //模板Id
}


///////////////////GS/////////////////////

type VideoParam struct {
	CodecStandard      string  `json:"CodecStandard"`     // 编码标准
	Bitrate            int     `json:"Bitrate"`           // 码率
	FrameRate          int     `json:"FrameRate"`         // 帧率
	MaxImageSize       []int   `json:"MaxImageSize"`      // 图片最大尺寸,长宽
	ImageScalingPolicy string  `json:"ImageScalingPolicy"`// 图片缩放策略
}

type AudioParam struct {
	AudioFormat              string `json:"AudioFormat"`             // 音频格式
	CodecStandard            string `json:"CodecStandard"`           // 编码标准
	SampleRate               int    `json:"SampleRate"`              // 采样率
	Bitrate                  int    `json:"Bitrate"`                 // 码率
	IsMuted                  bool   `json:"IsMuted"`                 // 是否静音
	IsAudioProcessingEnabled bool   `json:"IsAudioProcessingEnabled"`// 是否启用音频处理
}